<template></template>

<script>
	export default {
		// 页面配置
		meta: {
			// 设置viewport，禁止用户缩放
			viewport: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no'
		},
		onLaunch: function() {
			console.warn('当前组件仅支持 uni_modules 目录结构 ，请升级 HBuilderX 到 3.1.0 版本以上！');
			console.log('App Launch');
			// this.checkUpdateApp(); 
			//检查更新
			// #ifdef APP-PLUS
			this.checkUpdateApp(); //检查更新

			//#endif
		},
		onShow: function() {
			console.log('App Show');
		},
		onHide: function() {
			console.log('App Hide'); 
			// uni.clearStorage();
		},
		methods: {
			checkUpdateApp() {
				let _this = this;
				let param = {};
				//正式代码
				uni.request({
					url: _this.sysInfo.BasePath + 'Auth/GetAPPVersion',
					method: 'Post',
					data: param,
					header: {
						'content-type': 'application/x-www-form-urlencoded'
					},
					success: (res) => {
						if (res && res.data && res.data.Succeeded) {
							console.log(res.data);

							// let data = {
							// 	apk_client_intro: "发现有新安卓版本可以升级",
							// 	apk_client_download: "发现有新安卓版本可以升级",
							// 	apk_client_version: "发现有新安卓版本可以升级",
							// 	apk_client_force_update: "发现有新安卓版本可以升级",
							// 	wgt_download: "",
							// 	wgt_version: "1.0.1"
							// };

							const platform = uni.getSystemInfoSync().platform; //获取当前用户是在安卓还是IOS
							let version = ''; //用户当前版本
							let appVersion = ''; //升级包版本
							let appName = ''; //APP名字
							let updateForce = ''; //是否强制热更新
							let appUrl = ''; //升级包地址
							let intro = ''; //升级名提示
							// let wgt_version = res.data.data.wgt_version; //热更新版本号

							plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => {
								console.log(widgetInfo);
								version = widgetInfo.version;
								appName = widgetInfo.name || '';

								switch (platform) {
									case 'android':
										console.log(res.data.Data.apk_client_intro);
										intro = res.data.Data.apk_client_intro;
										appUrl = res.data.Data.apk_client_download;
										appVersion = res.data.Data.apk_client_version;
										updateForce = res.data.Data.apk_client_force_update;
										break;
									case 'ios':
										break;
									default:
										break;
								}
								console.log(res.data.data);

								//做判断，如果用户版本小于升级包版本先升级
								if (version < appVersion) {
									uni.showModal({
										title: '更新提示',
										confirmText: '立即升级',
										content: intro,
										success(res) {
											if (res.confirm) {
												if (platform == 'ios') {
													// plus.runtime.openURL(appUrl);
												} else {
													uni.showLoading({
														title: '正在更新',
														mask: true
													});
													uni.downloadFile({
														url: appUrl,
														success(download) {
															console.log(download);
															if (download.statusCode ==
																200) {
																plus.runtime.install(
																	download
																	.tempFilePath, {
																		force: false
																	},
																	() => {
																		uni
																			.hideLoading();
																		plus.runtime
																			.restart(); //更新成功重启
																	},
																	(err) => {
																		uni
																			.hideLoading();
																		uni.showModal({
																			showCancel: false,
																			content: '更新失败，将跳转下载页面!',
																			success() {
																				plus.runtime
																					.openURL(
																						appUrl
																					);
																			}
																		});
																	}
																);
															} else {}
														},
														fail() {
															uni.showModal({
																showCancel: false,
																content: '下载安装包失败!',
																success() {}
															});
															uni.hideLoading();
														}
													});
												}
											} else {
												if (updateForce.toString().toLowerCase() == 'true') {
													console.log(updateForce);
													uni.showModal({
														showCancel: false,
														content: '低版本无法继续使用APP，即将退出!',
														success() {
															//退出APP
															setTimeout(function() {
																if (platform ==
																	'android'
																) {
																	plus.runtime
																		.quit();
																} else {
																	//IOS略
																}
															}, 1000);
														}
													});
												} else {}
											}
										}
									});
								}

								// if (version >= appVersion && version !== wgt_version) {
								// 	uni.showLoading({
								// 		title: '正在检查热更新，请稍后',
								// 		mask: true
								// 	});
								// 	uni.downloadFile({
								// 		url: res.data.data.wgt_download,
								// 		success(down) {
								// 			console.log(down);
								// 			if (down.statusCode == 200) {
								// 				plus.runtime.install(
								// 					down.tempFilePath, {
								// 						force: true
								// 					},
								// 					() => {
								// 						uni.hideLoading();
								// 						plus.runtime.restart(); //更新成功重启
								// 					},
								// 					(err) => {
								// 						uni.hideLoading();
								// 						uni.showModal({
								// 							content: '更新失败，请手动下载最新APP',
								// 							success(res) {
								// 								if (res.confirm) {
								// 									plus.runtime
								// 										.openURL(
								// 											res
								// 											.data
								// 											.data
								// 											.wgt_download
								// 										);
								// 								} else {}
								// 							}
								// 						});
								// 					}
								// 				);
								// 			} else {
								// 				uni.showModal({
								// 					showCancel: false,
								// 					content: '下载安装包失败!',
								// 					success() {}
								// 				});
								// 				uni.hideLoading();
								// 			}
								// 		},
								// 		fail() {
								// 			uni.showModal({
								// 				showCancel: false,
								// 				content: '下载安装包失败!',
								// 				success() {}
								// 			});
								// 			uni.hideLoading();
								// 		}
								// 	});
								// }
								
								
							});
						} else {
							uni.showModal({
								showCancel: false,
								content: '检查系统版本失败!',
								success() {}
							});
						}
					},
					fail: () => {
						uni.showModal({
							showCancel: false,
							content: '检查系统版本失败!',
							success() {}
						});
					},
					complete: () => {}
				});
			}
		}
	};
</script>

<style lang="scss">
	/*每个页面公共css */
	@import '@/uni_modules/uni-scss/index.scss';
	@import '@/common/uni.css';
	/* #ifndef APP-NVUE */
	@import '@/static/customicons.css';

	/* #endif */
	// 设置整个项目的背景色
	page {
		background-color: #fff;
		letter-spacing: 1rpx;
		box-sizing: border-box;
		overflow-x: hidden;
		font-size: 26rpx;
		color: #333;
	}

	uni-tabbar {
		z-index: 11001;
	}

	.v-search {
		background-color: rgba(255, 255, 255, 0.9);
		position: fixed;
		top: var(--window-top);
		width: 100%;
		z-index: 21001;
		box-shadow: 0rpx 5rpx 5rpx #dfdfdf;
		box-sizing: border-box;
	}

	.example-info {
		font-size: 14px;
		color: #333;
		padding: 10px;
	}

	.pop-msg {

		margin-top: var(--window-top) !important;
		//#ifndef APP-PLUS	
		margin-top: 20rpx !important;
		//#endif
	}

	.uni-popup-message {
		width: 95%;
		margin: auto;
	}

	.uni-popup-message__box {
		border-radius: 5px;
	}

	.loading-mask {
		position: fixed;
		height: 100%;
		width: 100%;
		top: 0;
		left: 0;
		background-color: rgba(255, 255, 255, 0.1);
	}

	.loading {
		position: absolute;
		left: 50%;
		top: 50%;
		/* background-color: rgba(0, 0, 0, 0.2); */

		transform: translate(-50%, -50%);
		border-radius: 4px;
		padding: 8px 10px;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		align-items: center;
		padding: 20px;
	}

	.loading-icon {
		width: 50px;
		height: 50px;
		margin-bottom: 30px;
	}

	.loading-title {
		color: #3e5166;
		font-size: 16px;
	}

	.mesh-loader {
		overflow: hidden;
		height: 100%;
		width: 100%;
	}

	.mesh-loader .circle {
		width: 25px;
		height: 25px;
		position: absolute;
		background: #ce4d0e;
		border-radius: 50%;
		margin: -12.5px;
		-webkit-animation: mesh 3s ease-in-out infinite;
		animation: mesh 3s ease-in-out infinite -1.5s;
	}

	.mesh-loader>.circlegroup .circle:last-child {
		-webkit-animation-delay: 0s;
		animation-delay: 0s;
	}

	.mesh-loader>.circlegroup {
		position: absolute;
		top: 50%;
		left: 50%;
	}

	.mesh-loader>.circlegroup:last-child {
		-webkit-transform: rotate(90deg);
		transform: rotate(90deg);
	}

	@-webkit-keyframes mesh {
		0% {
			-webkit-transform-origin: 50% -100%;
			transform-origin: 50% -100%;
			-webkit-transform: rotate(0);
			transform: rotate(0);
		}

		50% {
			-webkit-transform-origin: 50% -100%;
			transform-origin: 50% -100%;
			-webkit-transform: rotate(360deg);
			transform: rotate(360deg);
		}

		50.00001% {
			-webkit-transform-origin: 50% 200%;
			transform-origin: 50% 200%;
			-webkit-transform: rotate(0deg);
			transform: rotate(0deg);
		}

		100% {
			-webkit-transform-origin: 50% 200%;
			transform-origin: 50% 200%;
			-webkit-transform: rotate(360deg);
			transform: rotate(360deg);
		}
	}

	@keyframes mesh {
		0% {
			-webkit-transform-origin: 50% -100%;
			transform-origin: 50% -100%;
			-webkit-transform: rotate(0);
			transform: rotate(0);
		}

		50% {
			-webkit-transform-origin: 50% -100%;
			transform-origin: 50% -100%;
			-webkit-transform: rotate(360deg);
			transform: rotate(360deg);
		}

		50.00001% {
			-webkit-transform-origin: 50% 200%;
			transform-origin: 50% 200%;
			-webkit-transform: rotate(0deg);
			transform: rotate(0deg);
		}

		100% {
			-webkit-transform-origin: 50% 200%;
			transform-origin: 50% 200%;
			-webkit-transform: rotate(360deg);
			transform: rotate(360deg);
		}
	}
</style>